package com.community.util;

import org.mindrot.jbcrypt.BCrypt;

public class SecurityUtil {
    // 密码加密强度
    private static final int BCRYPT_ROUNDS = 12;

    // BCrypt加密 - 增加对null的处理
    public static String encrypt(String plainText) {
        if (plainText == null) return null;
        return BCrypt.hashpw(plainText, BCrypt.gensalt(BCRYPT_ROUNDS));
    }


    // 生成随机验证码（6位数字）
    public static String generateCaptcha() {
        return String.format("%06d", (int) (Math.random() * 1000000));
    }

    // 生成安全令牌（32位UUID）
    public static String generateToken() {
        return java.util.UUID.randomUUID().toString().replace("-", "");
    }

    // 输入消毒（防止XSS）- 推荐使用OWASP ESAPI库
    public static String sanitizeInput(String input) {
        if (input == null) return null;

        // 临时解决方案，建议替换为ESAPI
        return input.replaceAll("<", "&lt;")
                .replaceAll(">", "&gt;")
                .replaceAll("\"", "&quot;")
                .replaceAll("'", "&#x27;")
                .replaceAll("&", "&amp;");
    }
    public static boolean verify(String password, String password1) {
        return BCrypt.checkpw(password, password1);
    }
}